startWeld{
  s_weld=new Weld();
  s_weldContainer=s_weld.initialize();
}
stopWeld{
  s_weld.shutdown();
}
testTestEnvironmentFindsConfigurationProvider{
  Instance<ConfigurationProvider> provider=s_weldContainer.instance().select(ConfigurationProvider.class);
  Assert.assertFalse("Unsatisfied",provider.isUnsatisfied());
  Assert.assertFalse("Ambigous",provider.isAmbiguous());
  ConfigurationProvider instance=provider.get();
}
testSampleClassIsConfigured{
  Instance<ExampleClass> provider=s_weldContainer.instance().select(ExampleClass.class);
  ExampleClass instance=provider.get();
  Assert.assertEquals("Float setting",3.141592f,instance.getFloatSetting());
  Date expectedDate=DateTools.makeDateGmt(1991,12,30,16,04,23);
  Assert.assertEquals("Date setting",expectedDate,instance.getDateSetting());
}
testProviderReceivedInjectedProperty{
  Instance<MarkerClass> provider=s_weldContainer.instance().select(MarkerClass.class);
  MarkerClass instance=provider.get();
  Assert.assertTrue(instance.hasBeanManager);
}
testProviderWasPostConstructed{
  Instance<MarkerClass> provider=s_weldContainer.instance().select(MarkerClass.class);
  MarkerClass instance=provider.get();
  Assert.assertTrue(instance.wasPostConstructed);
}
testProviderInjectConstructorUsed{
  Instance<MarkerClass> provider=s_weldContainer.instance().select(MarkerClass.class);
  MarkerClass instance=provider.get();
  Assert.assertTrue(instance.injectConstructorUsed);
}
